/*******************************************************************************
 * Copyright 2007-2014 FZI, http://www.fzi.de
 *                 Forschungszentrum Informatik - Information Process Engineering (IPE)
 *  
 *                 See the NOTICE file distributed with this work for additional
 *                 information regarding copyright ownership
 *                
 *                 Licensed under the Apache License, Version 2.0 (the "License");
 *                 you may not use this file except in compliance with the License.
 *                 You may obtain a copy of the License at
 *                
 *                   http://www.apache.org/licenses/LICENSE-2.0
 *                
 *                 Unless required by applicable law or agreed to in writing, software
 *                 distributed under the License is distributed on an "AS IS" BASIS,
 *                 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *                 See the License for the specific language governing permissions and
 *                 limitations under the License.
 * @author tzentek - <a href="mailto:zentek@fzi.de">Tom Zentek</a>
 * @author cyumusak - <a href="mailto:canyumusak@gmail.com">Can Yumusak</a>
 ******************************************************************************/
package de.fzi.fhemapi.view.vaadin.ui.model;

import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Label;

/**
 * A DeviceDetailEntry. This represents a pair of a caption and it's component.
 * @author Can
 *
 */
public class DeviceDetailEntry {

	public String caption;
	public AbstractComponent component;
	
	/**
	 * default constructor which accepts every component
	 * @param caption the caption of the detail
	 * @param component the caption of a textfield
	 */
	public DeviceDetailEntry(String caption, AbstractComponent component){
		this.caption = caption;
		this.component = component;
	}
	
	/**
	 * default constructor which automatically builds a label from a string
	 * @param caption the caption of the detail
	 * @param component the caption of a textfield
	 */
	public DeviceDetailEntry(String caption, String component){
		this(caption,buildRichTextField(component));
	}

	private static Label buildRichTextField(String text) {
		Label label = new Label();
		label.setImmediate(false);
		label.setWidth("-1px");
		label.setHeight("-1px");
		label.setValue(text);
		label.setContentMode(Label.CONTENT_XHTML);
		return label;
	}
}
